package ec.edu.ucacue.siop.service.cargas;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import ec.edu.ucacue.siop.dao.material.MaterialDAO;
import ec.edu.ucacue.siop.dao.material.MaterialDAOImpl;
import ec.edu.ucacue.siop.dao.recurso.MaterialDefProdDAO;
import ec.edu.ucacue.siop.dao.recurso.MaterialDefProdDAOImpl;
import ec.edu.ucacue.siop.dao.recurso.MaterialDefUsoDAO;
import ec.edu.ucacue.siop.dao.recurso.MaterialDefUsoDAOImpl;
import ec.edu.ucacue.siop.dao.recurso.UnidadFuncionalDAO;
import ec.edu.ucacue.siop.dao.recurso.UnidadFuncionalDAOImpl;
import ec.edu.ucacue.siop.modelo.material.Material;
import ec.edu.ucacue.siop.modelo.recurso.MaterialDefProd;
import ec.edu.ucacue.siop.modelo.recurso.MaterialDefUso;
import ec.edu.ucacue.siop.modelo.recurso.UnidadFuncional;
import ec.edu.ucacue.siop.utilidades.HibernateUtil;

public class CrearProductoInsumoUnidadFuncional {

	public void enlazar() {
		// programa que crea datos de alimentacion para una Unidad Especifica
		Session ses = HibernateUtil.beginTransaction();
		UnidadFuncionalDAO ufdao = new UnidadFuncionalDAOImpl();
		MaterialDAO matdao = new MaterialDAOImpl();
		MaterialDefProdDAO matDefP = new MaterialDefProdDAOImpl();
		MaterialDefUsoDAO matDefU = new MaterialDefUsoDAOImpl();
		
		/* 
		 * para las unidades funcionales AS AN HS y HN asignarles producto e insumo
		 * Crudo homogeneizado
		 * asignarles ademas las variables de calidad para control
		 * 
		 * Unidad AN HN AS y HS 
		 */
		UnidadFuncional ufAN = ufdao.findByID(UnidadFuncional.class, 29);
		Material mat = matdao.findByID(Material.class, 13);
		MaterialDefProd matDefP1 = matDefP.create(mat, 0, ufAN);
		MaterialDefUso matDefU1 = matDefU.create(mat, 0, ufAN);

		UnidadFuncional ufHN = ufdao.findByID(UnidadFuncional.class, 30);
		MaterialDefProd matDefP2 = matDefP.create(mat, 0, ufHN);
		MaterialDefUso matDefU2 = matDefU.create(mat, 0, ufHN);
		

		UnidadFuncional ufAS = ufdao.findByID(UnidadFuncional.class, 31);
		MaterialDefProd matDefP3 = matDefP.create(mat, 0, ufAS);
		MaterialDefUso matDefU3 = matDefU.create(mat, 0, ufAS);

		UnidadFuncional ufHS = ufdao.findByID(UnidadFuncional.class, 32);
		MaterialDefProd matDefP4 = matDefP.create(mat, 0, ufHS);
		MaterialDefUso matDefU4 = matDefU.create(mat, 0, ufHS);
		
		ufdao.save(ufHS);
		ufdao.save(ufHN);
		ufdao.save(ufAS);
		ufdao.save(ufAN);
		HibernateUtil.commitTransaction();
		HibernateUtil.closeSession();
	}

}
